
通过前面章节中介绍的IR生成，已经可以实现编译器中所需的大部分功能。本章中，将研究一些编译器中经常出现的高级主题。例如，许多现代语言都使用异常处理，将研究如何将其转换为LLVM IR。

为了支持LLVM优化器，使其能够在某些情况下生成更好的代码，必须向IR代码添加类型的元数据。添加的调试元数据，可使编译器用户能够使用源代码级调试工具进行调试。

本章中，将了解以下内容:

\begin{itemize}
\item
抛出和捕获异常:如何在编译器中实现异常处理

\item
为基于类型的别名分析生成元数据:将更多的元数据到LLVM IR，有助于LLVM更好地优化代码

\item
添加调试元数据:将实现向生成的IR代码添加调试信息所需的类
\end{itemize}

本章结束时，将了解异常处理，以及用于基于类型的别名分析和调试信息的元数据。





















